The present invention is directed to data transmission between computers. More particularly, the present invention is directed to data transmission between computers on communication paths that are selected dynamically.
Computers typically have multiple communication paths available for transmitting data to other computers. Examples of communication paths include the public switched telephone network (xe2x80x9cPSTNxe2x80x9d) path, an Ethernet local area network (xe2x80x9cLANxe2x80x9d) path, an Integrated Services Digital Network (xe2x80x9cISDNxe2x80x9d) path, and an Asynchronous Transfer Mode (xe2x80x9cATMxe2x80x9d) path. Each of these communication paths has differing characteristics that can affect how the data is transmitted. These characteristics are known as quality of service (xe2x80x9cQOSxe2x80x9d) characteristics. Examples of QOS characteristics include bandwidth, latency, jitter and reliability.
Computer applications generate many different types of data that is transmitted to other computers or destination devices via a communication path. Examples of the different types of generated data include video data, audio data, control data, and non real-time application data. Some communication paths, because of their characteristics, are more suitable than others for transmitting different types of data. For example, audio data can be transmitted on an unreliable communication path with a small bandwidth, but the path should have low latency and small jitter. Video data can be transmitted on an unreliable communication path, but the path should have a higher bandwidth than with audio data, low latency and small jitter. Most control data requires less bandwidth than video data, but requires high reliability. Real-time control data, such as remote camera control, requires high reliability and very low latency.
A known method exists for dynamically linking multiple communication paths together to form a single large communication path to accommodate large bandwidth needs of data. Specifically, Multilink Point-to-Point Protocol (xe2x80x9cMPPPxe2x80x9d) allows multiple ISDN communication paths to be linked together. MPPP adds and drops calls according to bandwidth needs. MPPP can also link multiple PSTN communication paths together. However, MPPP can only link a single type of communication path (i.e., ISDN or PSTN) together. Further, MPPP views the linked paths as a single large path. Therefore, MPPP does not transmit data on different communication paths based on transmission characteristics of the paths, or based on the type of data that is transmitted.
Based on the foregoing, there is a need for a method and apparatus that dynamically determines appropriate communication paths for transmitting data based on the characteristics of the available communication paths and the type of data.
One embodiment of the present invention is a system for transmitting data, which includes a plurality of data types, over a plurality of communication paths. The system determines which of the plurality of communication paths are available for transmitting the data. The system then determines at least one desired quality of service characteristic for each of the data types. Finally, the system selects at least one of the available communication paths for transmitting each of the data types by matching the desired quality of service characteristics to the available communication paths.